/**
 * Copyright (c) 2020 libinbin000
 * SFrame is licensed under the Mulan PSL v1.
 * You can use this software according to the terms and conditions of the Mulan PSL v1.
 * You may obtain a copy of Mulan PSL v1 at:
 *     http://license.coscl.org.cn/MulanPSL
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
 * PURPOSE.
 * See the Mulan PSL v1 for more details.
 */

import {Connect} from "./game/Connect";
import {Player} from "./game/Player";

export class Router{
    private static list:Array<(palyer:Player|Connect, data:any)=>void> = [];

    static handle(msgID:number, callback:(palyer:Player|Connect, data:any)=>void){
        this.list[msgID] = callback;
    }

    static onMessage(msgID:number, player:Player|Connect, data:any){
        this.list[msgID](player, data);
    }

    static printHandle(){
        this.list.forEach(element => {
            console.log(element);
        });
    }
}

export function handle(msgID:number, callback:(palyer:Player|Connect, data:any)=>void){
    Router.handle(msgID, callback);
}